Node.js Frameworks

வலை பயன்பாடுகள், APIகள் மற்றும் பலவற்றை உருவாக்க Node.js கட்டமைப்புகளை ஆராயுங்கள்

ஏன் ஒரு கட்டமைப்பைப் பயன்படுத்த வேண்டும்?

Node.js கட்டமைப்புகள் வலை பயன்பாடுகள், APIகள் மற்றும் பலவற்றை உருவாக்க கட்டமைப்பு, அமைப்பு மற்றும் பொதுவான பயன்பாடுகளை வழங்குகின்றன.

பொதுவான வளர்ச்சி சவால்களுக்கு தயாரிக்கப்பட்ட தீர்வுகளை வழங்குவதன் மூலம் டெவலப்பர்கள் பயன்பாடுகளை வேகமாக உருவாக்க உதவுகின்றன.

ஒரு கட்டமைப்பைப் பயன்படுத்துவதன் நன்மைகள்:

உற்பத்தித்திறன்

ரூட்டிங், மிடில்வேர் மேலாண்மை மற்றும் டெம்ப்ளேட்டிங் போன்ற பொதுவான பணிகளுக்கு முன்-கட்டப்பட்ட தீர்வுகளை வழங்குகின்றன

தரநிலையாக்கம்

குறியீட்டை மேலும் பராமரிக்கக்கூடியதாகவும் புரிந்துகொள்வதற்கு எளிதாகவும் ஆக்கும் வடிவங்கள் மற்றும் கட்டமைப்புகளை நிறுவுகின்றன

சமூகம்

பிரபலமான கட்டமைப்புகள் பெரிய சமூகங்கள், விரிவான ஆவணங்கள் மற்றும் பல மூன்றாம் தரப்பு பிளக்கின்கள் அல்லது நீட்டிப்புகளைக் கொண்டுள்ளன

பாதுகாப்பு

நன்கு பராமரிக்கப்படும் கட்டமைப்புகள் பெரும்பாலும் உள்ளமைக்கப்பட்ட பாதுகாப்பு அம்சங்கள் மற்றும் சிறந்த நடைமுறைகளை உள்ளடக்கியது

செயல்திறன்

பல கட்டமைப்புகள் செயல்திறனுக்கு மேம்படுத்தப்பட்டு, கேசிங், லோட் பாலன்சிங் மற்றும் பலவற்றிற்கான கருவிகளை வழங்குகின்றன

Node.js கட்டமைப்புகளின் வகைகள்

Node.js கட்டமைப்புகள் அவற்றின் வடிவமைப்பு தத்துவம் மற்றும் அம்சங்களின் அடிப்படையில் பரந்த அளவில் வகைப்படுத்தப்படலாம்.

இந்த வகைகளைப் புரிந்துகொள்வது உங்கள் திட்டத்தின் தேவைகளுக்கு சரியான கட்டமைப்பைத் தேர்ந்தெடுப்பதில் உதவுகிறது.

முழு-ஸ்டாக் கட்டமைப்புகள்

இந்த கட்டமைப்புகள் முன்-முனை மற்றும் பின்-முனை வளர்ச்சி இரண்டிற்கும் தீர்வுகளை வழங்குகின்றன, பெரும்பாலும் ஒருங்கிணைந்த டெம்ப்ளேட்டிங் இயந்திரங்கள், ORM அமைப்புகள் மற்றும் பலவற்றுடன்.

எடுத்துக்காட்டுகள்: Meteor, Sails.js, AdonisJS

பயன்படுத்த வேண்டிய போது: முன்-முனை மற்றும் பின்-முனை கூறுகள் இரண்டையும் கொண்ட முழுமையான வலை பயன்பாடுகளை உருவாக்கும் போது

மினிமலிஸ்ட்/மைக்ரோ கட்டமைப்புகள்

இந்த கட்டமைப்புகள் இலகுவாக இருப்பதில் கவனம் செலுத்துகின்றன மற்றும் அத்தியாவசிய அம்சங்களை மட்டுமே வழங்குகின்றன, டெவலப்பர்கள் தேவையானவற்றைச் சேர்க்க அனுமதிக்கின்றன.

எடுத்துக்காட்டுகள்: Express.js, Koa, Fastify

பயன்படுத்த வேண்டிய போது: APIகள் அல்லது எளிய வலை சேவைகளை உருவாக்கும் போது, அதிகபட்ச கட்டுப்பாடு வேண்டும்

REST API கட்டமைப்புகள்

தானியங்கி சரிபார்ப்பு, ஆவணப்படுத்தல் மற்றும் பதிப்புகள் போன்ற அம்சங்களுடன் RESTful APIகளை உருவாக்க வடிவமைக்கப்பட்ட சிறப்பு கட்டமைப்புகள்.

எடுத்துக்காட்டுகள்: LoopBack, NestJS, Restify

பயன்படுத்த வேண்டிய போது: குறைந்தபட்ச பாய்லர்ப்ளேட் மூலம் வலுவான, உற்பத்தி-தயாரான APIகளை உருவாக்கும் போது

நிகழ்நேர கட்டமைப்புகள்

WebSockets மற்றும் சர்வர்-அனுப்பிய நிகழ்வுகளுக்கான உள்ளமைக்கப்பட்ட ஆதரவுடன் நிகழ்நேர பயன்பாடுகளுக்கு மேம்படுத்தப்பட்ட கட்டமைப்புகள்.

எடுத்துக்காட்டுகள்: Socket.io, Sails.js, FeathersJS

பயன்படுத்த வேண்டிய போது: அரட்டை பயன்பாடுகள், நேரடி புதுப்பிப்புகள் அல்லது எந்தவொரு நிகழ்நேர அம்சங்களையும் உருவாக்கும் போது

Express.js

Express என்பது அதன் எளிமை மற்றும் நெகிழ்வுத்தன்மைக்கு அறியப்பட்ட மிகவும் பிரபலமான மற்றும் பரவலாகப் பயன்படுத்தப்படும் Node.js கட்டமைப்பாகும்.

சிறந்தது:

எந்த அளவிலான வலை பயன்பாடுகள் மற்றும் APIகளை உருவாக்க

கற்றல் வளைவு:

குறைந்தது முதல் மிதமானது

செயல்திறன்:

பெரும்பாலான பயன்பாட்டு நிகழ்வுகளுக்கு நல்லது

const express = require('express');
const app = express();
const port = 8080;

app.get('/', (req, res) => {
  res.send('Hello World from Express.js!');
});

app.listen(port, () => {
  console.log(`Express server running at http://localhost:${port}`);
});

முக்கிய அம்சங்கள்:

🎯 சிறந்தது:

பொது-நோக்க வலை பயன்பாடுகள், APIகள் மற்றும் மேலும் சிறப்பு கட்டமைப்புகளுக்கான அடித்தளமாக.

📚 மேலும் கற்றுக்கொள்ள:

Express.js எங்கள் Express.js அத்தியாயத்தில் மேலும் நெருக்கமாக உள்ளடக்கப்பட்டுள்ளது.

Nest.js

Nest.js என்பது Angular ஆல் ஈர்க்கப்பட்ட ஒரு முற்போக்கான கட்டமைப்பாகும், TypeScript உடன் கட்டப்பட்டது மற்றும் திறமையான, அளவிடக்கூடிய சர்வர்-சைடு பயன்பாடுகளை உருவாக்க வடிவமைக்கப்பட்டது.

சிறந்தது:

நிறுவன பயன்பாடுகள், மைக்ரோசர்விசஸ் மற்றும் சிக்கலான APIகள்

கற்றல் வளைவு:

மிதமானது முதல் உயர்ந்தது (குறிப்பாக Angular அனுபவம் இல்லாமல்)

செயல்திறன்:

சிறந்தது, Express அல்லது Fastify மீது கட்டப்பட்டது

// app.controller.ts
import { Controller, Get } from '@nestjs/common';

@Controller()
export class AppController {
  @Get()
  getHello(): string {
    return 'Hello World from Nest.js!';
  }
}

// main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(8080);
  console.log(`Nest.js server running at http://localhost:8080`);
}
bootstrap();

முக்கிய அம்சங்கள்:

🎯 சிறந்தது:

நிறுவன பயன்பாடுகள், சிக்கலான APIகள் மற்றும் மைக்ரோசர்விசஸ் கட்டிடக்கலைகள், குறிப்பாக Angular உடன் பழக்கமுள்ள குழுக்களுக்கு.

Fastify

Fastify என்பது குறைந்தபட்ச மேலோட்டத்துடன் சிறந்த டெவலப்பர் அனுபவத்தை வழங்குவதில் கவனம் செலுத்தும் ஒரு வலை கட்டமைப்பாகும்.

சிறந்தது:

அதிக-செயல்திறன் APIகள் மற்றும் சேவைகள்

கற்றல் வளைவு:

குறைந்தது முதல் மிதமானது

செயல்திறன்:

மிகவும் வேகமான Node.js கட்டமைப்புகளில் ஒன்று

const fastify = require('fastify')({ logger: true });
const port = 8080;

// Declare a route
fastify.get('/', async (request, reply) => {
  return { hello: 'Hello World from Fastify!' };
});

// Run the server
const start = async () => {
  try {
    await fastify.listen({ port });
    fastify.log.info(`Fastify server running at http://localhost:${port}`);
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();

முக்கிய அம்சங்கள்:

🎯 சிறந்தது:

அதிக-செயல்திறன் பயன்பாடுகள், வேகம் முக்கியமான APIகள் மற்றும் ஸ்கீமா சரிபார்ப்பிலிருந்து பயனடையும் திட்டங்கள்.

Koa.js

Express பின்னால் உள்ள குழுவால் உருவாக்கப்பட்ட Koa, வலை பயன்பாடுகள் மற்றும் APIகளுக்கான ஒரு சிறிய, மிகவும் வெளிப்படையான மற்றும் மிகவும் வலுவான அடித்தளமாக இருப்பதை நோக்கமாகக் கொண்டுள்ளது.

சிறந்தது:

நவீன வலை பயன்பாடுகள் மற்றும் async/await ஐப் பயன்படுத்தும் APIகள்

கற்றல் வளைவு:

மிதமானது (async/await புரிதல் தேவை)

செயல்திறன்:

சிறந்தது, Express ஐ விட இலகுவானது

const Koa = require('koa');
const app = new Koa();
const port = 8080;

// Response middleware
app.use(async ctx => {
  ctx.body = 'Hello World from Koa.js!';
});

app.listen(port, () => {
  console.log(`Koa server running at http://localhost:${port}`);
});

முக்கிய அம்சங்கள்:

🎯 சிறந்தது:

தங்கள் மிடில்வேர் ஸ்டாக்கில் அதிக கட்டுப்பாடு வேண்டும் மற்றும் Express ஐ விட மிகவும் நவீன அணுகுமுறையை விரும்பும் டெவலப்பர்கள்.

பிற பிரபலமான கட்டமைப்புகள்

Hapi.js

const Hapi = require('@hapi/hapi');

const init = async () => {
  const server = Hapi.server({
    port: 8080,
    host: 'localhost'
  });

  server.route({
    method: 'GET',
    path: '/',
    handler: (request, h) => {
      return 'Hello World from Hapi.js!';
    }
  });

  await server.start();
  console.log(`Hapi server running at ${server.info.uri}`);
};

init();

சிறந்தது: நிறுவன-நிலை பயன்பாடுகள் மற்றும் குறியீட்டை விட கட்டமைப்பை விரும்பும் குழுக்கள்.

Adonis.js

// routes.js
'use strict'

const Route = use('Route')

Route.get('/', () => {
  return 'Hello World from Adonis.js!'
})

// server.js
const { Ignitor } = require('@adonisjs/ignitor')

new Ignitor(require('@adonisjs/fold'))
  .appRoot(__dirname)
  .fireHttpServer()
  .catch(console.error)

சிறந்தது: முழு-ஸ்டாக் பயன்பாடுகள், குறிப்பாக Laravel அல்லது பிற MVC கட்டமைப்புகளுடன் பழக்கமுள்ள டெவலப்பர்களுக்கு.

Socket.io

const http = require('http');
const server = http.createServer();
const { Server } = require('socket.io');
const io = new Server(server);
const port = 8080;

io.on('connection', (socket) => {
  console.log('a user connected');

  socket.on('chat message', (msg) => {
    console.log('message: ' + msg);
    io.emit('chat message', msg);
  });

  socket.on('disconnect', () => {
    console.log('user disconnected');
  });
});

server.listen(port, () => {
  console.log(`Socket.io server running at http://localhost:${port}`);
});

சிறந்தது: அரட்டை பயன்பாடுகள், நேரடி டாஷ்போர்டுகள் மற்றும் கூட்டு கருவிகள் போன்ற நிகழ்நேர பயன்பாடுகள்.

சரியான கட்டமைப்பைத் தேர்ந்தெடுத்தல்

சரியான கட்டமைப்பைத் தேர்ந்தெடுப்பது உங்கள் திட்டத்தின் தேவைகள், உங்கள் குழுவின் நிபுணத்துவம் மற்றும் உங்கள் குறிப்பிட்ட இலக்குகளைப் பொறுத்தது. இந்த காரணிகளைக் கருத்தில் கொள்ளுங்கள்:

செயல்திறன் தேவைகள்

திட்ட வகை

குழு அனுபவம்

கற்றல் வளைவு

கட்டமைப்பு ஒப்பீடு

இந்த ஒப்பீடு அட்டவணை முக்கிய அளவுகோல்களின் அடிப்படையில் வெவ்வேறு Node.js கட்டமைப்புகளை விரைவாக மதிப்பிட உதவுகிறது:

கட்டமைப்பு வகை செயல்திறன் கற்றல் வளைவு TypeScript ஆதரவு சிறந்தது பயன்படுத்தப்படுவதற்கு
Express.js மினிமலிஸ்ட் நல்லது குறைந்தது பகுதியளவு பொது-நோக்க வலை பயன்பாடுகள், APIகள்
Nest.js முழு-அம்சம் நல்லது உயர்ந்தது சிறந்தது நிறுவன பயன்பாடுகள், சிக்கலான APIகள்
Fastify மினிமலிஸ்ட் சிறந்தது மிதமானது நல்லது அதிக-செயல்திறன் APIகள்
Koa.js மினிமலிஸ்ட் மிகவும் நல்லது மிதமானது நல்லது நவீன, async-கவனம் செலுத்தும் பயன்பாடுகள்
Hapi.js முழு-அம்சம் நல்லது மிதமானது நல்லது நிறுவன பயன்பாடுகள், கட்டமைப்பு-இயக்கப்பட்ட
Adonis.js முழு-ஸ்டாக் MVC நல்லது உயர்ந்தது சிறந்தது முழு-ஸ்டாக் பயன்பாடுகள்
Restify API-கவனம் நல்லது குறைந்தது பகுதியளவு RESTful APIகள்
Meteor முழு-ஸ்டாக் மிதமானது மிதமானது நல்லது ரியாக்டிவ் முழு-ஸ்டாக் பயன்பாடுகள்
Loopback API-கவனம் நல்லது மிதமானது சிறந்தது குறைந்தபட்ச குறியீட்டுடன் API உருவாக்கம்
Strapi ஹெட்லெஸ் CMS நல்லது குறைந்தது (UI) நல்லது உள்ளடக்க மேலாண்மை, API உருவாக்கம்

கட்டமைப்பு தேர்வு வழிகாட்டி

Express.js ஐத் தேர்ந்தெடுக்கவும்:

NestJS ஐத் தேர்ந்தெடுக்கவும்:

Fastify ஐத் தேர்ந்தெடுக்கவும்:

Koa ஐத் தேர்ந்தெடுக்கவும்:

பயிற்சி

பின்வருவனவற்றில் எது ஒரு முழு-ஸ்டாக் Node.js கட்டமைப்பு?

Express
✗ தவறு! Express ஒரு மினிமலிஸ்ட் கட்டமைப்பாகும், முழு-ஸ்டாக் கட்டமைப்பு அல்ல
Koa
✗ தவறு! Koa ஒரு மினிமலிஸ்ட் கட்டமைப்பாகும், முழு-ஸ்டாக் கட்டமைப்பு அல்ல
Meteor
✓ சரி! Meteor ஒரு முழு-ஸ்டாக் Node.js கட்டமைப்பாகும், இது முன்-முனை மற்றும் பின்-முனை வளர்ச்சி இரண்டிற்கும் தீர்வுகளை வழங்குகிறது
Fastify
✗ தவறு! Fastify ஒரு அதிக-செயல்திறன் API கட்டமைப்பாகும், முழு-ஸ்டாக் கட்டமைப்பு அல்ல